#include "restmap.h"
#include "ui_restmap.h"
#include "logindialog.h"
#include "menu.h"
#include <QMessageBox>
#include<QDebug>
#include<stdbool.h>


RestMap::RestMap(QString username,QWidget *parent) :
    QDialog(parent),
    ui(new Ui::RestMap)
{

    ui->setupUi(this);
    //设置背景
    this->setStyleSheet("QWidget {background-image:url(:/new/bj/5.png)}");
    //提升窗口等级
    this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinimizeButtonHint);


    ui->label_user->setText(username);
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);
    //获取并更改各餐桌状态
    //1
    query.exec("select * from tableStat where tableId='1'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_1->setText("一号桌\n使用");
        }
        else{
            ui->pushButton_1->setText("一号桌\n空闲");
        }
    }
    //2
    query.exec("select * from tableStat where tableId='2'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_2->setText("二号桌\n使用");
        }
        else{
            ui->pushButton_2->setText("二号桌\n空闲");
        }
    }
    //3
    query.exec("select * from tableStat where tableId='3'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_3->setText("三号桌\n使用");
        }
        else{
            ui->pushButton_3->setText("三号桌\n空闲");
        }
    }
    //4
    query.exec("select * from tableStat where tableId='4'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_4->setText("四号桌\n使用");
        }
        else{
            ui->pushButton_4->setText("四号桌\n空闲");
        }
    }
    //5
    query.exec("select * from tableStat where tableId='5'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_5->setText("五号桌\n使用");
        }
        else{
            ui->pushButton_5->setText("五号桌\n空闲");
        }
    }
    //6
    query.exec("select * from tableStat where tableId='6'");
    if(query.next()){
        if(query.value(2)==1){
            ui->pushButton_6->setText("六号桌\n使用");
        }
        else{
            ui->pushButton_6->setText("六号桌\n空闲");
        }
    }
}

RestMap::~RestMap()
{
    delete ui;
}


void RestMap::on_pushButton_clicked() //返回
{
    //向数据库写入当前用户的桌子状态为空闲
    //QString sql = QString("UPDATE tableStat SET tableState=0 WHERE username='%1';").arg(username);
    LoginDialog *ld=new LoginDialog();
    ld->show();
    this->close();
}

void RestMap::on_pushButton_1_clicked() //一号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_1->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_1->setText("一号桌\n使用");
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=1;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,1);
        m->show();
        this->close();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }

}

void RestMap::on_pushButton_2_clicked()  //二号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_2->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_2->setText("二号桌\n使用");
        //读取当前用户
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=2;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,2);
        m->show();
        this->hide();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }
}

void RestMap::on_pushButton_3_clicked() //三号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_3->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_3->setText("三号桌\n使用");
        //读取当前用户
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=3;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,3);
        m->show();
        this->hide();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }
}

void RestMap::on_pushButton_4_clicked() //四号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_4->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_4->setText("四号桌\n使用");
        //读取当前用户
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=4;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,4);
        m->show();
        this->hide();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }
}

void RestMap::on_pushButton_5_clicked() //五号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_5->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_5->setText("五号桌\n使用");
        //读取当前用户
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=5;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,5);
        m->show();
        this->hide();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }
}

void RestMap::on_pushButton_6_clicked() //六号桌
{
    //添加数据库驱动
    QSqlDatabase db;
    QString dbPath="ordersystem.db";
    if(QSqlDatabase::contains(dbPath)){//默认的连接名是否存在
      db = QSqlDatabase::database(dbPath);
    }
    else
    {   //默认连接名不存在，头次连接
          db = QSqlDatabase::addDatabase("QSQLITE",dbPath);
     }
    //设置数据库名称
    db.setDatabaseName(dbPath);
    //打开数据库
    if(!db.open())
    {
        //打开失败
        QMessageBox::critical(this, "错误", "数据库访问错误！");
        return;
    }

    //以下执行相关sql语句
    QSqlQuery query(db);

    //截取餐桌状态
    QString str = ui->pushButton_6->text().section('\n',1,1);
    if(str == tr("空闲"))//下单
    {
        //更改餐桌状态
        ui->pushButton_6->setText("六号桌\n使用");
        //读取当前用户
        QString username = ui->label_user->text();
        //向数据库写入当前用户和桌子状态
        QString sql = QString("UPDATE tableStat SET username='%1',tableState=1 WHERE tableId=6;").arg(username);
        query.exec(sql);
        Menu *m=new Menu(username,6);
        m->show();
        this->hide();
    }else{//再次选桌
        QMessageBox msgBox;
        msgBox.setText("此餐桌正在使用，请另选餐桌！");
        msgBox.exec();

    }
}

